package com.joysuch.wwyt.patrol.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import com.joysuch.wwyt.common.entity.UserDataEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author zr
 * @since 2022-02-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("wwyt_patrol_check_plan")
@ApiModel(value="PatrolCheckPlan对象", description="检查计划")
public class PatrolCheckPlan extends UserDataEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "新增时产生唯一id")
    private String batchNo;

    @ApiModelProperty(value = "计划版本")
    private Long planVersion;

    @ApiModelProperty(value = "计划名称")
    private String planName;

    @ApiModelProperty(value = "检查类型id")
    private Long checkTypeId;

    @ApiModelProperty(value = "责任部门id")
    private Long responsibleDept;

    @ApiModelProperty(value = "周期类型(固定周期:cycle 单次临时:single 指定次数:specify)")
    private String cycleType;

    @ApiModelProperty(value = "周期单位(月:M 周:W 天:D 时:H)")
    private String cycleUnit;

    @ApiModelProperty(value = "次数或者间隔(指定次数时保存次数,固定周期时为周期)")
    private Integer frequencyInterval;

    @ApiModelProperty(value = "计划开始时间")
    private Date planStartTime;

    @ApiModelProperty(value = "计划结束时间")
    private Date planEndTime;

    @ApiModelProperty(value = "时段")
    private String period;

    @ApiModelProperty(value = "周期描述")
    private String cycleDesc;

    @ApiModelProperty(value = "异常通知(1: 普通报警 2：分级报警)")
    private Integer exceptionNotify;

    @ApiModelProperty(value = "检查人员ids")
    private String checkUserIds;

    @ApiModelProperty(value = "允许补检(0：关闭 1：开启)")
    private String allowRepair;

    @ApiModelProperty(value = "允许补检时长(以分钟为单位,自定义为-1)")
    private Integer supplementaryInspectionTime;

    @ApiModelProperty(value = "自定义允许补检时长,以时为单位")
    private Integer customizeSupplementaryInspection;

    @ApiModelProperty(value = "无论是自定义还是自选的提前时间都解析为分钟保存")
    private Integer delayMinute;

    @ApiModelProperty(value = "按顺序检查(0：关闭 1：开启)")
    private String orderCheck;

    @ApiModelProperty(value = "签到提前(0：关闭 1：开启)")
    private String signAdvance;

    @ApiModelProperty(value = "提前时间,单位为分钟")
    private Integer advanceTime;

    @ApiModelProperty(value = "巡更模式(0：关闭 1：开启)")
    private String patrolMode;

    @ApiModelProperty(value = "立即推送(0：关闭 1：开启)")
    private String pushTaskNow;

    @ApiModelProperty(value = "上次计划生成任务时间")
    private Date lastProduceTime;

    @ApiModelProperty(value = "状态(0：关闭 1：开启)")
    private String status;

    @ApiModelProperty(value = "设备停用自动处理(1-自动处理 0-不自动处理)")
    private String deviceStopAutoProcess;

}
